<?php

/**
 * controler para movimientos de ingreso stock
 *
 * @author jreyes
 */



require 'class/so/clientes/DP/SoClienteDP.class.php';
require 'class/so/clientes/FN/SoClienteFN.class.php';
require 'class/common/mc/FN/XxMaestroListaFN.class.php';
require 'class/frm/clienteFrm.php';

class ClienteController extends ControllerBase
{
	public function listarClienteAutocomplete()
	{        
        $a_result = array();
		$o_SoClienteFN= new SoClienteFN(); 

        if ($this->requestVars){
            if (array_key_exists('term', $this->requestVars)) {
                $o_SoClienteFN->setNombre($this->requestVars["term"]);
            }
        }
        
        $result = $o_SoClienteFN->select();   
        
        if($result)   
        {  
            foreach($result as $key => $obj)	
	        {
            
              $a_res['clienteId'] = $obj->getClienteId();
              $a_res['nombre']      = $obj->getNombre();
              $a_res['docIdent']    = $obj->getDocIdent();                            
              array_push( $a_result, $a_res );
	        }
        }  
        echo json_encode($a_result);
	}
	
	public function listarCliente(){
        $o_SoClienteFN= new SoClienteFN();       
        $page = isset($this->requestVars['page']) ? $this->requestVars['page'] : 1;
        $rp = isset($this->requestVars['rp']) ? $this->requestVars['rp'] : 10;
        $sortname = isset($this->requestVars['sortname']) ? $this->requestVars['sortname'] : 'name';
        $sortorder = isset($this->requestVars['sortorder']) ? $this->requestVars['sortorder'] : 'desc';		
        $o_SoClienteFN->page = $page;
        $o_SoClienteFN->tamPag = $rp;
        $o_SoClienteFN->sortCampos = $sortname;
        $o_SoClienteFN->sortType   = $sortorder;
        if ($this->requestVars){
            if (array_key_exists('clienteId', $this->requestVars)) 
            {
                $o_SoClienteFN->setClienteId($this->requestVars["clienteId"]) ;   
            }
            if (array_key_exists('tipoCliente', $this->requestVars)) {
                $o_SoClienteFN->setTipo($this->requestVars["tipoCliente"]);
            }
            if (array_key_exists('nombre', $this->requestVars)) {
                $o_SoClienteFN->setNombre($this->requestVars["nombre"]);  
            }           
        }
        $result = $o_SoClienteFN->select();     
        $vars['result'] = $result;
        $vars['ClienteFN'] = $o_SoClienteFN;
        if (array_key_exists('modoBusqueda', $this->requestVars)) {
            $vars['modoBusqueda'] = $this->requestVars["modoBusqueda"];
        }else{
            $vars['modoBusqueda'] = "";
        }
        $this->view->show("so/clientes/clienteLista",$vars);
		
	}
	
    public function listarClienteForm(){
		if (!isset($vars)){
			$vars = '';
		}        
        $this->view->show("so/clientes/clienteListaForm",$vars);
    }
    
    public function shw(){
    	$this->shwForm("view");
    }
    
    public function shwForm($view=""){
        $ClienteFrm            = new ClienteFrm();
        $vars                  = array();
        $o_XxMaestroListaFN    = new XxMaestroListaFN(); 
        $o_XxMaestroListaFN->setListaId("terminosPago");   
        $a_terminosPago        = $o_XxMaestroListaFN->select();
        $o_XxMaestroListaFN->setListaId("vendedor");   
        $a_vendedor            = $o_XxMaestroListaFN->select();
        $ClienteFrm->listaTerminosPago  = $a_terminosPago;       
        $ClienteFrm->listaVendedor 	= $a_vendedor;
        if ($this->requestVars){
            if (array_key_exists('clienteId', $this->requestVars)) {
                if ($this->requestVars["clienteId"]){
                    $o_SoClienteFN= new SoClienteFN();       
                    $o_SoClienteFN->setClienteId($this->requestVars["clienteId"]);
                    $o_ClienteBN = $o_SoClienteFN->selectByPK();
                    if ($o_ClienteBN){
                        $ClienteFrm->clienteId         = $o_ClienteBN->getClienteId();
                        $ClienteFrm->tipo              = $o_ClienteBN->getTipo(); 
                        $ClienteFrm->nombre            = $o_ClienteBN->getNombre();  
                        $ClienteFrm->docIdent          = $o_ClienteBN->getDocIdent();  
                        $ClienteFrm->nacExt            = $o_ClienteBN->getNacExt();   
                        $ClienteFrm->direcc1           = $o_ClienteBN->getDirecc1();   
                        $ClienteFrm->direcc2           = $o_ClienteBN->getDirecc2();   
                        $ClienteFrm->ciudad            = $o_ClienteBN->getCiudad();   
                        $ClienteFrm->direccEstado      = $o_ClienteBN->getDireccEstado();   
				    $ClienteFrm->pais              = $o_ClienteBN->getPais();
                        $ClienteFrm->telefono          = $o_ClienteBN->getTelefono();   
                        $ClienteFrm->telefono2         = $o_ClienteBN->getTelefono2();   
                        $ClienteFrm->email             = $o_ClienteBN->getEmail();  
                        $ClienteFrm->contacto          = $o_ClienteBN->getContacto();   
                        $ClienteFrm->vendedor          = $o_ClienteBN->getVendedor();   
                        $ClienteFrm->terminosPago      = $o_ClienteBN->getTerminosPago();   
                        $ClienteFrm->plazoDiasPago     = $o_ClienteBN->getPlazoDiasPago();   
                        $ClienteFrm->inicioFecha       = $o_ClienteBN->getInicioFecha();   
                        $ClienteFrm->observacion       = $o_ClienteBN->getObservacion();   
                        $ClienteFrm->estado            = $o_ClienteBN->getEstado();   
                        $ClienteFrm->creaUsr           = $o_ClienteBN->getCreaUsr();   
                        $ClienteFrm->creaFecha         = $o_ClienteBN->getCreaFecha();   
                        $ClienteFrm->modifUsr          = $o_ClienteBN->getModifUsr();   
                        $ClienteFrm->modifFecha        = $o_ClienteBN->getModifFecha();                                                                                                
                    }
                }
            }
        }   
      
        $vars['ClienteFrm'] = $ClienteFrm;
        if (!isset($view) || $view==""){
        	$this->view->show("so/clientes/cliente",$vars);
        }else{
        	$this->view->show("so/clientes/clienteView",$vars);
        }
    }

     public function registrarCliente(){
         if ($this->requestVars){
                $o_SoClienteDP  = new SoClienteDP();                     
                $o_SoClienteDP->setClienteId($this->requestVars["clienteId"])  ;     
                $o_SoClienteDP->setTipo($this->requestVars["tipo"]); 
                $o_SoClienteDP->setNombre($this->requestVars["nombre"]);  
                $o_SoClienteDP->setDocIdent($this->requestVars["docIdent"]);  
                $o_SoClienteDP->setNacExt($this->requestVars["nacExt"]);   
                $o_SoClienteDP->setDirecc1($this->requestVars["direcc1"]);   
                $o_SoClienteDP->setDirecc2($this->requestVars["direcc2"]);                   
                $o_SoClienteDP->setCiudad($this->requestVars["ciudad"]);   
                $o_SoClienteDP->setDireccEstado($this->requestVars["direccEstado"]);   
                $o_SoClienteDP->setPais($this->requestVars["pais"]);   
                $o_SoClienteDP->setTelefono($this->requestVars["telefono"]);                   
                $o_SoClienteDP->setTelefono2($this->requestVars["telefono2"]);                                   
                $o_SoClienteDP->setEmail($this->requestVars["email"]);   
                $o_SoClienteDP->setContacto($this->requestVars["contacto"]);   
                $o_SoClienteDP->setVendedor($this->requestVars["vendedor"]);  
                $o_SoClienteDP->setTerminosPago($this->requestVars["terminosPago"]);   
                $o_SoClienteDP->setPlazoDiasPago($this->requestVars["plazoDiasPago"]);   
                $o_SoClienteDP->setInicioFecha($this->requestVars["inicioFecha"]);   
                $o_SoClienteDP->setObservacion($this->requestVars["observacion"]);   
                $o_SoClienteDP->setEstado($this->requestVars["estado"]);   
                $o_SoClienteDP->setCreaUsr($this->requestVars["creaUsr"]);   
                $o_SoClienteDP->setCreaFecha($this->requestVars["creaFecha"]);   
                $o_SoClienteDP->setModifUsr($this->requestVars["modifUsr"]);   
                $o_SoClienteDP->setModifFecha($this->requestVars["modifFecha"]);                 
                if ($this->requestVars["clienteId"]){
                    $o_SoClienteFN= new SoClienteFN();       
                    $o_SoClienteFN->setClienteId($this->requestVars["clienteId"]);
                    $o_ClienteBN = $o_SoClienteFN->selectByPK();
                    if ($o_ClienteBN){                	                	
                        $clienteId = $this->requestVars["clienteId"];  
                        if ($o_SoClienteDP->update()){
                           $_SESSION['msgAlert'] = "Cliente registrado";
                        }else{
                           $_SESSION['msgAlert'] = "Error al registrar";
                        }	
                    }
                }else{
                    $clienteId = $o_SoClienteDP->save();
                    if ($clienteId){
                       $_SESSION['msgAlert'] = "Nuevo Cliente registrado";
                    }else{
                       $_SESSION['msgAlert'] = "Error al registrar";
                    }
                }
               

         }
     } 
     public function eliminarCliente(){
         if ($this->requestVars){
         	if (array_key_exists('clienteId', $this->requestVars)) {
         		$o_SoClienteDP  = new SoClienteDP();
                $o_SoClienteFN= new SoClienteFN();       
                $o_SoClienteFN->setClienteId($this->requestVars["clienteId"]);
                $o_ClienteBN = $o_SoClienteFN->selectByPK();
                if ($o_ClienteBN){       
                	// tamb validar movimientos ordenes venta-facturas-despachos pdtes         	                	
                    if ($o_SoClienteDP->delete()){
                       $_SESSION['msgAlert'] = "Cliente eliminado";
                    }else{
                       $_SESSION['msgAlert'] = "Error al registrar";
                    }
                }            	
         	}
         }     
     }
}
?>